]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agoiconGrid: Don't hide children inside allocation loop
Marco Trevisan (Treviño) [Thu, 6 Jun 2019 21:21:13 +0000 (23:21 +0200)]
iconGrid: Don't hide children inside allocation loop

Hiding a child implies a parent reallocation, and IconGrid does it for the
children that doesn't fit in the available space, but this could lead to an
allocation recursion cycle. This has been introduced by commit 0e0574a0 to
reduce CPU usage not to using JS vfuncs.

To avoid this, toggle the children opacity instead so that we can achieve the
same visibility result, without any reallocation need.
In this way we also fix the case where hidden children can be shown again,
as _getVisibleChildren doesn't filter-out transparent ones, restoring the
pre-commit 0e0574a0 behavior.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1336

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoshell-app: Fix spelling error
Laurent Bigonville [Sat, 15 Jun 2019 09:29:53 +0000 (11:29 +0200)]
shell-app: Fix spelling error

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1205

7 years agobackground: Group 'changed' signal emission
Marco Trevisan (Treviño) [Tue, 28 May 2019 04:18:34 +0000 (23:18 -0500)]
background: Group 'changed' signal emission

Background is monitoring the whole `org.gnome.desktop.background` gsettings keys
for changes connecting to the non-specialized 'changed' signal and re-emitting
this as-is.
This means that when the background is changed via control-center, we get
multiple 'changed' signal events from GSettings, and for each one of this we
recreate a Background and a BackgroundActor.

Avoid this by using an idle to delay the emission of the 'changed' signal
grouping the events.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/558

7 years agobackground: Use Garbage Collector to dispose background
Marco Trevisan (Treviño) [Tue, 28 May 2019 04:03:17 +0000 (23:03 -0500)]
background: Use Garbage Collector to dispose background

The same Meta.Background could be used by multiple instances of background
actors, and so should not be disposed when the actor using it is destroyed.

Instead of calling `run_dispose` directly on it, just nullify the reference
on destroy method, leaving the job of doing the proper disposition to the
gabage collector that keeps the proper reference count on the Meta.Background.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/501

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/558

7 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 14 Jun 2019 10:36:04 +0000 (10:36 +0000)]
Update Indonesian translation

7 years agoUpdate Friulian translation
Fabio Tomat [Tue, 11 Jun 2019 09:26:26 +0000 (09:26 +0000)]
Update Friulian translation

7 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 10 Jun 2019 10:05:19 +0000 (12:05 +0200)]
Updated Spanish translation

7 years agoaccessibility: Add pointer accessibility support
Olivier Fourdan [Wed, 20 Mar 2019 16:46:12 +0000 (17:46 +0100)]
accessibility: Add pointer accessibility support

Adds the UI part for the pointer accessibility features.

The various timeouts running are notified using a pie-timer showing
under the pointer.

For dwell-click type selection, we use a drop-down menu. Users can
use the dwell-click to select the next type of dwell click to be
emitted.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/474

7 years agotheme: Add pointer accessibility resources
Olivier Fourdan [Wed, 27 Mar 2019 16:12:25 +0000 (17:12 +0100)]
theme: Add pointer accessibility resources

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/474

7 years agosessionMode: add a property to disable window manager menus
Cosimo Cecchi [Sat, 3 Jun 2017 22:37:36 +0000 (15:37 -0700)]
sessionMode: add a property to disable window manager menus

We will use this to disable menus in the initial-setup session.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/569

7 years agoremoteSearch: exclude content from hidden apps
Simon Schampijer [Thu, 9 Nov 2017 17:01:58 +0000 (18:01 +0100)]
remoteSearch: exclude content from hidden apps

Some apps may be configured as NoDisplay=true, but still install
a search provider.
Like we do elsewhere, exclude them from showing up in the UI.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/568

7 years agoshell: Stop using anchor point
Florian Müllner [Wed, 5 Jun 2019 14:46:35 +0000 (14:46 +0000)]
shell: Stop using anchor point

Since the removal of the old (pre-3.16) message tray, legacy tray icons
are very unlikely to be placed in a container that is animated using the
deprecated anchor point.

Just assume that the regular stage position is good enough.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/572

7 years agost: Stop using (deprecated) ClutterAnimation
Florian Müllner [Sat, 26 Sep 2015 03:20:04 +0000 (05:20 +0200)]
st: Stop using (deprecated) ClutterAnimation

Instead, make StAdjustment a ClutterAnimatable and use a property
transition.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/572

7 years agolocatePointer: Add implementation in gnome-shell
Olivier Fourdan [Wed, 20 Feb 2019 09:12:36 +0000 (10:12 +0100)]
locatePointer: Add implementation in gnome-shell

The "locate pointer" functionality was implemented in gnome settings
daemon using X11 protocols and would fail when run under Wayland.

With Wayland, there is no global coordinate space exposed to the clients
so this functionality cannot be implemented as a separate program.

Instead, add the "locate pointer" functionality in gnome-shell so that
it works in both X11 and Wayland.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/981
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/413
https://gitlab.gnome.org/GNOME/mutter/merge_requests/453
https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/merge_requests/19
https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/86

7 years agolayout: Use the ripples for overview
Olivier Fourdan [Thu, 21 Feb 2019 07:45:17 +0000 (08:45 +0100)]
layout: Use the ripples for overview

As we moved the ripples implementation different class of its own, use
that for switching to overview.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/981
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/413
https://gitlab.gnome.org/GNOME/mutter/merge_requests/453
https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/merge_requests/19
https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/86

7 years agoripples: Add a new class ripples
Olivier Fourdan [Thu, 21 Feb 2019 07:44:34 +0000 (08:44 +0100)]
ripples: Add a new class ripples

So we can use the same code for both the ripples in overview and the
pointer location.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/981
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/413
https://gitlab.gnome.org/GNOME/mutter/merge_requests/453
https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/merge_requests/19
https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/86

7 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 3 Jun 2019 10:25:50 +0000 (12:25 +0200)]
Updated Spanish translation

7 years agoUpdate Hungarian translation
Balázs Meskó [Sat, 1 Jun 2019 11:17:41 +0000 (11:17 +0000)]
Update Hungarian translation

7 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 31 May 2019 03:52:30 +0000 (03:52 +0000)]
Update Indonesian translation

7 years agosearch: reload search providers when installed applications change
Cosimo Cecchi [Thu, 30 Nov 2017 20:36:31 +0000 (12:36 -0800)]
search: reload search providers when installed applications change

Otherwise, a shell restart will be required after installing a new
application, before its results can be seen in search.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/562

7 years agograbHelper: Throw an error if the owner is not an actor
Marco Trevisan (Treviño) [Wed, 29 May 2019 19:43:27 +0000 (14:43 -0500)]
grabHelper: Throw an error if the owner is not an actor

Starting from commit 7bb84dae, GrabHelper requires the owner to be an Actor as
we pass this to pushModal that assumes it to be as well.

So check that GrabHelper owner is an actor and throws an error if it is not the
case. This helps in tracking down issues such as gnome-shell-extensions!68

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/565

7 years agoPopupMenuManager: Remove unneeded _owner reference
Marco Trevisan (Treviño) [Wed, 29 May 2019 19:40:11 +0000 (14:40 -0500)]
PopupMenuManager: Remove unneeded _owner reference

Nothing inside PopupMenuManager is using the owner, while a reference of it is
already owned by the GrabHelper, so remove this dead property.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/565

7 years agowindowManager: Disable favorite shortcuts without overview
Florian Müllner [Wed, 29 May 2019 15:20:23 +0000 (17:20 +0200)]
windowManager: Disable favorite shortcuts without overview

The `switch-to-application-n` shortcuts are essentially "launch the nth
app in the dash" actions, so they are at the very least confusing when
the dash isn't available because the overview itself is disabled (for
example in initial-setup mode).

So disable the shortcuts when the overview is disabled, but delegate the
decision to a separate function so that extensions like 'panel-favorites'
which expose favorites by some other means can easily re-enable them.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1333

7 years agowindowMenu: Do actions requiring grab once ungrabbed
Marco Trevisan (Treviño) [Mon, 27 May 2019 21:16:38 +0000 (16:16 -0500)]
windowMenu: Do actions requiring grab once ungrabbed

Resizing or moving a window needs starting a keyboard grab. However, if the
action is triggered by a menu entry activation it might not work as we already
have already an active grab on input devices to manage the menu itself.

So, possibly wait maximum 100ms for the current grab operation to be completed
before trying go start a new one.

Needs https://gitlab.gnome.org/GNOME/mutter/merge_requests/596
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1326

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/557

7 years agopopupMenu: Connect after to item 'activate' signal
Marco Trevisan (Treviño) [Mon, 27 May 2019 19:45:12 +0000 (14:45 -0500)]
popupMenu: Connect after to item 'activate' signal

A menu item activation might lead to a call to `itemActivated` which eventually
will close the menu which leads to a `PopupMenu.removeAll` that destroys all the
items, stopping the emission of the 'activate' signal for them.

Before commit 4258ae3e this was not happening because destroy'ing a javascript
object wasn't really disposing it and thus stopping the signal emissions.

So, ensure that `itemActivated` is called after that all the other callbacks
have been consumed, and so that the menu is closed as last thing.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1326

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/557

7 years agomeson: Do not add compiler flags if 'plain' buildtype is used
Robert Mader [Mon, 29 Apr 2019 10:59:56 +0000 (12:59 +0200)]
meson: Do not add compiler flags if 'plain' buildtype is used

That is how the 'plain' buildtype is meant in meson.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/464

7 years agomeson: Add some compiler arguments to debug builds
Robert Mader [Sun, 17 Mar 2019 13:38:39 +0000 (14:38 +0100)]
meson: Add some compiler arguments to debug builds

To get better debug information.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/464

7 years agoshellMountOperation: Use a Unicode apostrophe in a new string
Piotr Drąg [Tue, 28 May 2019 17:14:19 +0000 (19:14 +0200)]
shellMountOperation: Use a Unicode apostrophe in a new string

See https://developer.gnome.org/hig/stable/typography.html

7 years agoshell-global: don't warn when unsetting non-existent state
Cosimo Cecchi [Sun, 26 May 2019 17:24:25 +0000 (10:24 -0700)]
shell-global: don't warn when unsetting non-existent state

If the state we're trying to delete does not exist, do not log an
error.
Prevents this journal warning at startup:

gnome-shell[1082]: Could not delete runtime/persistent state file: Error removing file /run/user/1000/gnome-shell/runtime-state-LE.:0/screenShield.locked: No such file or directory

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/555

7 years agokeyring-prompt: relax NULL check in remove_mnemonics()
Cosimo Cecchi [Sun, 26 May 2019 17:16:03 +0000 (10:16 -0700)]
keyring-prompt: relax NULL check in remove_mnemonics()

Instead of considering a GValue containing a NULL string to be a
programmer error, simply return NULL.
remove_mnemonics() is in fact called on the value of the
"choice-label" property as well, which has NULL as its default
value.

This prevents triggering the following gnome-shell warning:

gnome-shell[1082]: remove_mnemonics: assertion 'label != NULL' failed

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/555

7 years agomodemManager: improve check for CDMA system identifier
Cosimo Cecchi [Sun, 26 May 2019 16:54:42 +0000 (09:54 -0700)]
modemManager: improve check for CDMA system identifier

Upon construction of the CDMA modem proxy, _reloadCdmaOperatorName()
is called and the value of the Sid property is read.
That property is defined as UINT32 in the D-Bus interface, but the
value may not be loaded yet after the proxy is constructed, in which
case its value will be null.

In _findProviderForSid(), we'll end up calling lookup_cdma_sid(null)
which fails with the following assertion:

gnome-shell[1082]: nma_mobile_providers_database_lookup_cdma_sid: assertion 'sid > 0' failed

This commit changes the (sid == 0) check in _findProviderForSid()
to (!sid) which will also catch the null case.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/555

7 years agowindowAttentionHandler: disconnect signals before destruction
Cosimo Cecchi [Sun, 26 May 2019 15:31:07 +0000 (08:31 -0700)]
windowAttentionHandler: disconnect signals before destruction

The 'destroy' signal is emitted at the end of the destroy() method.
However the implementation of destroy() can end up emitting one of the
signals we connect to on the window, causing us to re-enter destroy
from its callback.
That will in turn lead to some objects getting disposed twice, which
produces a stack trace like the following one.

This commit fixes the issue by overriding the destroy() method instead
of connecting to the signal, which allows us to disconnect the signal
handlers from the window at an earlier time and avoid re-entrancy.

--

gnome-shell[1082]: Object Gio.Settings (0x7f0af8143f00), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
org.gnome.Shell.desktop[1082]: == Stack trace for context 0x5627f7d1e220 ==
org.gnome.Shell.desktop[1082]: #0   5627f9e801a8 i   resource:///org/gnome/shell/ui/messageTray.js:238 (7f0aefa9eca0 @ 22)
org.gnome.Shell.desktop[1082]: #1   5627f9e80108 i   resource:///org/gnome/shell/ui/messageTray.js:802 (7f0aefaa2ee0 @ 28)
org.gnome.Shell.desktop[1082]: #2   5627f9e80070 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:79 (7f0aef7b29d0 @ 62)
org.gnome.Shell.desktop[1082]: #3   7fffa69fbfc0 b   self-hosted:979 (7f0aefa515e0 @ 440)
org.gnome.Shell.desktop[1082]: #4   5627f9e7ffe0 i   resource:///org/gnome/shell/ui/messageTray.js:121 (7f0aefa9e1f0 @ 71)
org.gnome.Shell.desktop[1082]: #5   5627f9e7ff38 i   resource:///org/gnome/shell/ui/messageTray.js:1408 (7f0aefaa58b0 @ 22)
org.gnome.Shell.desktop[1082]: #6   5627f9e7fe80 i   resource:///org/gnome/shell/ui/messageTray.js:1237 (7f0aefaa51f0 @ 729)
org.gnome.Shell.desktop[1082]: #7   5627f9e7fde8 i   resource:///org/gnome/shell/ui/messageTray.js:1055 (7f0aefaa3d30 @ 124)
org.gnome.Shell.desktop[1082]: #8   7fffa69ff8e0 b   self-hosted:979 (7f0aefa515e0 @ 440)
org.gnome.Shell.desktop[1082]: #9   7fffa69ff9d0 b   resource:///org/gnome/gjs/modules/signals.js:142 (7f0aefccb670 @ 386)
org.gnome.Shell.desktop[1082]: #10   5627f9e7fd58 i   resource:///org/gnome/shell/ui/messageTray.js:479 (7f0aefaa0940 @ 50)
org.gnome.Shell.desktop[1082]: #11   5627f9e7fcb8 i   resource:///org/gnome/shell/ui/messageTray.js:808 (7f0aefaa2ee0 @ 99)
org.gnome.Shell.desktop[1082]: #12   5627f9e7fc28 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:69 (7f0aef7b28b0 @ 13)
org.gnome.Shell.desktop[1082]: #13   5627f9e7fb80 i   resource:///org/gnome/shell/ui/main.js:566 (7f0aefcd8820 @ 216)
org.gnome.Shell.desktop[1082]: #14   5627f9e7fad0 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:103 (7f0aef7b2c10 @ 27)
org.gnome.Shell.desktop[1082]: #15   5627f9e7fa58 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:43 (7f0aef7b2700 @ 17)
org.gnome.Shell.desktop[1082]: #16   7fffa6a03350 b   resource:///org/gnome/gjs/modules/signals.js:142 (7f0aefccb670 @ 386)
org.gnome.Shell.desktop[1082]: #17   5627f9e7f9d0 i   resource:///org/gnome/shell/ui/messageTray.js:471 (7f0aefaa08b0 @ 22)
org.gnome.Shell.desktop[1082]: #18   5627f9e7f950 i   resource:///org/gnome/shell/ui/calendar.js:752 (7f0aefaabdc0 @ 22)
org.gnome.Shell.desktop[1082]: #19   7fffa6a048f0 b   self-hosted:979 (7f0aefa515e0 @ 440)
org.gnome.Shell.desktop[1082]: == Stack trace for context 0x5627f7d1e220 ==
org.gnome.Shell.desktop[1082]: #0   5627f9e801a8 i   resource:///org/gnome/shell/ui/messageTray.js:239 (7f0aefa9eca0 @ 42)
org.gnome.Shell.desktop[1082]: #1   5627f9e80108 i   resource:///org/gnome/shell/ui/messageTray.js:802 (7f0aefaa2ee0 @ 28)
org.gnome.Shell.desktop[1082]: #2   5627f9e80070 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:79 (7f0aef7b29d0 @ 62)
org.gnome.Shell.desktop[1082]: #3   7fffa69fbfc0 b   self-hosted:979 (7f0aefa515e0 @ 440)
org.gnome.Shell.desktop[1082]: #4   5627f9e7ffe0 i   resource:///org/gnome/shell/ui/messageTray.js:121 (7f0aefa9e1f0 @ 71)
org.gnome.Shell.desktop[1082]: #5   5627f9e7ff38 i   resource:///org/gnome/shell/ui/messageTray.js:1408 (7f0aefaa58b0 @ 22)
org.gnome.Shell.desktop[1082]: #6   5627f9e7fe80 i   resource:///org/gnome/shell/ui/messageTray.js:1237 (7f0aefaa51f0 @ 729)
org.gnome.Shell.desktop[1082]: #7   5627f9e7fde8 i   resource:///org/gnome/shell/ui/messageTray.js:1055 (7f0aefaa3d30 @ 124)
org.gnome.Shell.desktop[1082]: #8   7fffa69ff8e0 b   self-hosted:979 (7f0aefa515e0 @ 440)
org.gnome.Shell.desktop[1082]: #9   7fffa69ff9d0 b   resource:///org/gnome/gjs/modules/signals.js:142 (7f0aefccb670 @ 386)
org.gnome.Shell.desktop[1082]: #10   5627f9e7fd58 i   resource:///org/gnome/shell/ui/messageTray.js:479 (7f0aefaa0940 @ 50)
org.gnome.Shell.desktop[1082]: #11   5627f9e7fcb8 i   resource:///org/gnome/shell/ui/messageTray.js:808 (7f0aefaa2ee0 @ 99)
org.gnome.Shell.desktop[1082]: #12   5627f9e7fc28 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:69 (7f0aef7b28b0 @ 13)
org.gnome.Shell.desktop[1082]: #13   5627f9e7fb80 i   resource:///org/gnome/shell/ui/main.js:566 (7f0aefcd8820 @ 216)
org.gnome.Shell.desktop[1082]: #14   5627f9e7fad0 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:103 (7f0aef7b2c10 @ 27)
org.gnome.Shell.desktop[1082]: #15   5627f9e7fa58 i   resource:///org/gnome/shell/ui/windowAttentionHandler.js:43 (7f0aef7b2700 @ 17)
org.gnome.Shell.desktop[1082]: #16   7fffa6a03350 b   resource:///org/gnome/gjs/modules/signals.js:142 (7f0aefccb670 @ 386)
org.gnome.Shell.desktop[1082]: #17   5627f9e7f9d0 i   resource:///org/gnome/shell/ui/messageTray.js:471 (7f0aefaa08b0 @ 22)
org.gnome.Shell.desktop[1082]: #18   5627f9e7f950 i   resource:///org/gnome/shell/ui/calendar.js:752 (7f0aefaabdc0 @ 22)
org.gnome.Shell.desktop[1082]: #19   7fffa6a048f0 b   self-hosted:979 (7f0aefa515e0 @ 440)
gnome-shell[1082]: g_object_run_dispose: assertion 'G_IS_OBJECT (object)' failed
gnome-shell[1082]: Object Gio.Settings (0x7f0af8161750), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
gnome-shell[1082]: g_object_run_dispose: assertion 'G_IS_OBJECT (object)' failed

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/555

7 years agomodalDialog: Use a Gobject property to manage the state
Marco Trevisan (Treviño) [Thu, 23 May 2019 20:58:53 +0000 (15:58 -0500)]
modalDialog: Use a Gobject property to manage the state

Make the state read-only while add a "private" function to set it and notify
when it changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/55

7 years agomodalDialog: Inherit from St.Widget
Marco Trevisan (Treviño) [Thu, 23 May 2019 20:45:44 +0000 (15:45 -0500)]
modalDialog: Inherit from St.Widget

Make the dialog a widget itself, removing the `_group` property used for
handling the actor.

Update all the inherited classes to be also GObject implementations, moving all
the signals to proper object ones.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/55

7 years agoshell: Only initialize global->xdisplay on X11 compositors
Carlos Garnacho [Thu, 31 Jan 2019 11:03:34 +0000 (12:03 +0100)]
shell: Only initialize global->xdisplay on X11 compositors

This is just used to set up things that are relevant to X11 compositors
(XDND, XFixes input region). We can live with it unset on the wayland
compositor cases.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/378

7 years agoshell: Do not set XFixes input region on wayland compositors
Carlos Garnacho [Thu, 31 Jan 2019 11:02:39 +0000 (12:02 +0100)]
shell: Do not set XFixes input region on wayland compositors

This is just needed on the X11 compositor, wayland compositors are known
for handling their own input.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/378

7 years agoshell: Use MetaDisplay input focus API
Carlos Garnacho [Tue, 8 Jan 2019 16:14:24 +0000 (17:14 +0100)]
shell: Use MetaDisplay input focus API

Replaces use of (now removed) MetaX11Display focus API (which happened to
work for wayland too).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/378

7 years agonetwork: Make NMWirelessDialogItem a subclass of St.BoxLayout
Jonas Dreßler [Wed, 22 May 2019 16:27:15 +0000 (18:27 +0200)]
network: Make NMWirelessDialogItem a subclass of St.BoxLayout

In commit 41dd744b7429358a4534e603570d4d1c8acc161b this item was
confused with a popup menu item. To fix this, make NMWirelessDialogItem
inherit from St.BoxLayout instead of adding the item.actor variable back
again.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/551

7 years agoBump version to 3.33.2
Florian Müllner [Wed, 22 May 2019 18:21:15 +0000 (18:21 +0000)]
Bump version to 3.33.2

Update NEWS.

7 years agojs: Throw GObject.NotImplementedError when requiring overriding
Marco Trevisan (Treviño) [Tue, 21 May 2019 20:28:07 +0000 (15:28 -0500)]
js: Throw GObject.NotImplementedError when requiring overriding

Since version 1.50.0, gjs defines GObject.NotImplementedError for throwing
errors when a "virtual" method that requires a subclass implementation is not
defined.

So use this instead of a generic JS Error in such cases.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/549

7 years agoshellMountOperation: Add spinner to password dialog
segfault [Sat, 6 Apr 2019 15:39:29 +0000 (17:39 +0200)]
shellMountOperation: Add spinner to password dialog

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/126

7 years agoshellMountOperation: Support TCRYPT
segfault [Sun, 7 Apr 2019 21:35:07 +0000 (23:35 +0200)]
shellMountOperation: Support TCRYPT

This extends the ShellMountPasswordDialog by widgets which allow
specifying parameters supported by TrueCrypt and VeraCrypt compatible
volumes (TCRYPT). This includes:

 - Whether the volume to be unlocked is hidden.
 - Whether the volume to be unlocked is a system partition.
   Note: TrueCrypt and VeraCrypt only support encrypting Windows
   systems [1], so the label for this option is "Windows System Volume".
 - Whether to use a PIM [2].
 - Whether to use keyfiles. Unfortunately, GMountOperation doesn't
   support TCRYPT keyfiles, so if this checkbox is checked, we tell the
   user that they should unlock the volume with Disks, which supports
   unlocking TCRYPT volumes with keyfiles.

[1] https://www.veracrypt.fr/en/System%20Encryption.html
[2] https://www.veracrypt.fr/en/Header%20Key%20Derivation.html

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/126

7 years agoshellMountOperation: Move password entry to a grid
segfault [Sun, 7 Apr 2019 21:33:34 +0000 (23:33 +0200)]
shellMountOperation: Move password entry to a grid

This prepares for additional UI elements added for TCRYPT support.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/126

7 years agoworkspacesView: remove unused variables
Cosimo Cecchi [Sun, 19 May 2019 15:59:34 +0000 (15:59 +0000)]
workspacesView: remove unused variables

7 years agocalendar-server: Port to libecal-2.0
Milan Crha [Thu, 18 Apr 2019 14:21:43 +0000 (16:21 +0200)]
calendar-server: Port to libecal-2.0

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/501

7 years agoRevert "calendar-server: Port to libecal-2.0"
Florian Müllner [Fri, 17 May 2019 20:23:43 +0000 (22:23 +0200)]
Revert "calendar-server: Port to libecal-2.0"

This reverts commit 71e469a59c78f532bc348df6e0f920ea75be21dc.

7 years agocalendar-server: Port to libecal-2.0
Milan Crha [Fri, 17 May 2019 10:07:57 +0000 (12:07 +0200)]
calendar-server: Port to libecal-2.0

Port the calendar-server code to work with the latest evolution-data-server
API changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/501

7 years agoci: Switch to mutter's docker image
Florian Müllner [Fri, 17 May 2019 18:50:00 +0000 (20:50 +0200)]
ci: Switch to mutter's docker image

Mutter's CI now also builds gnome-shell to ensure that a MR doesn't
break the shell. Its docker image has therefore been updated to contain
all our deps as well, so we don't need our own image anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/546

7 years agointrospect: Include `sandboxed-app-id` as well
Florian Müllner [Wed, 15 May 2019 22:57:27 +0000 (00:57 +0200)]
introspect: Include `sandboxed-app-id` as well

App IDs in gnome-shell don't match AppStream, Flatpak or Snap IDs. For the
desktop portal, the latter two are more relevant, so include it in the
returned information.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1289

7 years agointrospect: Remove unused variable
Florian Müllner [Thu, 16 May 2019 09:48:59 +0000 (09:48 +0000)]
introspect: Remove unused variable

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1289

7 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 16 May 2019 10:41:26 +0000 (12:41 +0200)]
Updated Spanish translation

7 years agolayout: Show important actors above top_window_group
Jonas Dreßler [Fri, 3 May 2019 21:39:11 +0000 (23:39 +0200)]
layout: Show important actors above top_window_group

The top_window_group is used for windows like popup menus, which should
appear above shell chrome like the panel.

Since we want important actors such as the screen keyboard or modal
dialogs to be shown above those windows, add their actors after adding
global.top_window_group to this.uiGroup and provide a new function
addTopChrome() to add important chrome above the top_window_group.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/917

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/358

7 years agost: Introspect ScrollViewFade to read fade properties
Marco Trevisan (Treviño) [Mon, 13 May 2019 19:01:19 +0000 (14:01 -0500)]
st: Introspect ScrollViewFade to read fade properties

Util.ensureActorVisibleInScrollView takes care of the potential scroll view fade
effect in order to compute the scroll offset, reading the ScrollViewFade's
`vfade-offset` property. This was correctly working until gnome 3.30 cycle.
However such property isn't defined now because since gjs 1.54, it can only
fetch introspected properties and St.ScrollViewFade was considered a private API
not exposed by gir.

Fix this by also introspecting st-scroll-view-fade sources.
Not being considered private anymore, install the header.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1061

7 years agocleanup: Fix spelling errors
Veerasamy Sevagen [Wed, 15 May 2019 19:32:29 +0000 (19:32 +0000)]
cleanup: Fix spelling errors

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/515

7 years agokeyring: Use bind_property for message and description values
Marco Trevisan (Treviño) [Thu, 25 Apr 2019 19:29:45 +0000 (14:29 -0500)]
keyring: Use bind_property for message and description values

This code was commented out in commit 593b431 as it was causing a crash in gjs.

As per the [1] gjs fix, this can now be safely used again.

[1] https://gitlab.gnome.org/GNOME/gjs/merge_requests/289
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/510

7 years agosystem: Just use buttonGroup instead of adding extra _actionsItem
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 19:24:14 +0000 (14:24 -0500)]
system: Just use buttonGroup instead of adding extra _actionsItem

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agopopupMenu: Implement Switch as actor
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 21:04:16 +0000 (16:04 -0500)]
popupMenu: Implement Switch as actor

Switch is used only by menu items, and implement it extending St.Bin

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agopopupMenu: Make sensitive a Menu and MenuItem property
Marco Trevisan (Treviño) [Wed, 17 Apr 2019 23:36:01 +0000 (18:36 -0500)]
popupMenu: Make sensitive a Menu and MenuItem property

Use 'sensitive' as native gobject property for PopupBaseMenuItem, while simulate
it for PopupMenuBase.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agoPopupBaseMenuItem: Use active property for menu items
Marco Trevisan (Treviño) [Wed, 17 Apr 2019 23:15:56 +0000 (18:15 -0500)]
PopupBaseMenuItem: Use active property for menu items

Instead of using methods and flags, just use a gobject property to keep track
of the active state.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agopanel: Use menu items as actors
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 21:01:09 +0000 (16:01 -0500)]
panel: Use menu items as actors

All menu items are actors now, so remove all the actor property usages.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agojs/status: Use menu items as actors
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 21:00:49 +0000 (16:00 -0500)]
js/status: Use menu items as actors

All menu items are actors now, so remove all the actor property usages.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agopopupMenu: Implement vfunc's for key focus in/out
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 20:46:10 +0000 (15:46 -0500)]
popupMenu: Implement vfunc's for key focus in/out

As per the fact the menu item is an object we can just vfunc's.
This is not possible for events as specific union object is passed instead of
just the Clutter.Event.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agopopupMenuItem: Make it a widget inheriting from St.BoxLayout
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 00:19:31 +0000 (19:19 -0500)]
popupMenuItem: Make it a widget inheriting from St.BoxLayout

Don't use composition for PopupBaseMenuItem, but instead inherit from BoxLayout.
So remove the internal actor, making all the menu items actor themselves.

Add an actor property as fallback to avoid warnings for usage in menus.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agosystemActions: Only do prefix matches
Florian Müllner [Sun, 4 Nov 2018 23:21:26 +0000 (00:21 +0100)]
systemActions: Only do prefix matches

Our search for system actions is currently inconsistent with searching
for applications: While we match terms anywhere within keywords, GIO
will only match at the beginning of words.

In order to get the same behavior, split keywords into single words
and only match terms at the beginning of a word.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/745

7 years agojs: Use GTypeFlags to define abstract GObject classes
Florian Müllner [Sat, 27 Apr 2019 18:45:14 +0000 (20:45 +0200)]
js: Use GTypeFlags to define abstract GObject classes

gjs now supports an optional GTypeFlags value for GObject subclasses
defined with GObject.registerClass(), so it is not possible to define
abstract classes on the gobject-level, just like from C.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/517

7 years agoBump version to 3.33.1
Florian Müllner [Tue, 14 May 2019 15:31:14 +0000 (15:31 +0000)]
Bump version to 3.33.1

Update NEWS.

7 years agoUpdate German translation
Tim Sabsch [Sun, 12 May 2019 10:38:15 +0000 (10:38 +0000)]
Update German translation

(cherry picked from commit 1c5f926a70792946e4b85a2534b1e8395eec5e24)

7 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Sat, 11 May 2019 10:27:11 +0000 (10:27 +0000)]
Update Esperanto translation

7 years agokeyboard: Remove unused _hideSubkeys function
Marco Trevisan (Treviño) [Thu, 9 May 2019 21:11:26 +0000 (16:11 -0500)]
keyboard: Remove unused _hideSubkeys function

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Unset Idle ID before removing it
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:51:17 +0000 (14:51 -0500)]
keyboard: Unset Idle ID before removing it

When toggling keyboard various times, we might get an error because trying to
disconnect an idle that isn't set anymore.

This is because when we remove the idle, we don't unset the ID.
Also clear the idle when destroying the keyboard.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Use JS style for current page variable
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:37:20 +0000 (14:37 -0500)]
keyboard: Use JS style for current page variable

We should use camelCase for _currentPage.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Don't try to set the same current page twice
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:35:11 +0000 (14:35 -0500)]
keyboard: Don't try to set the same current page twice

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Unset current page when it gets destroyed
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:30:21 +0000 (14:30 -0500)]
keyboard: Unset current page when it gets destroyed

The current page is going to be destroyed as part of _onKeyboardGroupsChanged
cleanup, however we don't unset its pointer, and thus we'd might try to call a
function using an invalidated pointer.

So, unset the this._current_page reference when its get destroyed, connecting
to destroy signal when setting it and disconnecting when changing page.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1281

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agoUpdate Chinese (China) translation
Dingzhong Chen [Wed, 8 May 2019 10:13:32 +0000 (18:13 +0800)]
Update Chinese (China) translation

7 years agost: Delay handling of :first/:last-child changes
Florian Müllner [Thu, 2 May 2019 19:12:01 +0000 (21:12 +0200)]
st: Delay handling of :first/:last-child changes

Updating the :first/:last-child pseudo classes can result in a lot
of unnecessary style changes when bulk-adding children to a container,
as every child ends up as the new last child.

Address this by deferring the style change to an idle, so we only do
the work once for the actual first and last child.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/529

7 years agoRevert "st: Reload icon on style changes only if necessary"
Florian Müllner [Fri, 3 May 2019 21:24:43 +0000 (21:24 +0000)]
Revert "st: Reload icon on style changes only if necessary"

The size isn't the only relevant style change, we also need to pick
up icon-colors, icon-style and icon-shadow.

This reverts commit 94995e9c1e1ffc3eb44c06d23a30a2ac8cd2455d.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/529

7 years agonetwork: Handle interface name changes
Fabrice Bellet [Tue, 7 May 2019 15:21:09 +0000 (15:21 +0000)]
network: Handle interface name changes

The interface name when a device is added may not be the final one. For
example when using USB tethering, it will first appear as 'usb0' before
being renamed to something like 'enp0s20f0u1' depending on the port the
phone is plugged in.

As a result, we will ignore the new interface name in that case and fail
to associate the correct connection with the device: Instead of the
correct "USB Ethernet" (or user-customized name), it will show up as
"Ethernet".

Fix this by updating names and connections when a device's interface
property changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/534

7 years agopanel: Drag topmost maximized window
Dylan McCall [Mon, 5 Feb 2018 18:46:22 +0000 (10:46 -0800)]
panel: Drag topmost maximized window

This makes it possible to drag a window which appears connected with the
panel, even if it is not in focus. As a result, it should be easier to
manipulate side-by-side windows.

https://bugzilla.gnome.org/show_bug.cgi?id=679290

7 years agotexture-cache: Keep aspect ratio for content images
Florian Müllner [Tue, 30 Apr 2019 18:37:34 +0000 (20:37 +0200)]
texture-cache: Keep aspect ratio for content images

Images are loaded either with a supplied fixed size, or using the "native"
dimensions of the file. When creating a content image from the loaded data,
we currently simply apply this directly to the preferred size.

This works usually fine: GdkPixbuf will always keep the aspect ratio, so
if only one dimension is provided, the other will be adjusted accordingly:

Loading a 200x200 image with a requested size of (100, -1) will result in
a 100x100 content image.

There is a catch though: GdkPixbuf will only scale *down* to the requested
size, no up. That is, loading a 100x100 image with a requested size of
(200, -1) will result in a 100x100 pixbuf. But as we assume that the pixbuf
size matches the requested size, the image content ends up with 200x100.

Fix this by explicitly handling the case where only one size was supplied,
and make the other dimension take the aspect ratio into account

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/525

7 years agowindowManager: Fix fullscreen windows in ws switching animations
Jonas Dreßler [Fri, 3 May 2019 20:56:02 +0000 (22:56 +0200)]
windowManager: Fix fullscreen windows in ws switching animations

To prevent a small gap between windows in the workspace switching
animation, we temporarily shift windows up or down by the height of the
panel. This obviously breaks the animation for fullscreen windows, those
will overlap with the ones on the other workspace since there is no
panel shown in that case.

Fix this by checking whether the old or new workspace includes a
fullscreen window and don't shift the windows if there is one.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/757

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/322

7 years agodialog: Use object's set to assign properties
Marco Trevisan (Treviño) [Fri, 3 May 2019 20:30:42 +0000 (15:30 -0500)]
dialog: Use object's set to assign properties

We can just assign a properties object to a GObject using the set() method
instead of using Object.assign.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531

7 years agodialog: Really set ellipsize mode in subtitle and body
Marco Trevisan (Treviño) [Fri, 3 May 2019 20:27:13 +0000 (15:27 -0500)]
dialog: Really set ellipsize mode in subtitle and body

Dialog's subtitle or body could not be properly wrapped, while it's ellipsized
when the text's width doesn't exceed the container size.

Clutter text has an `ellipsize` property, however in dialog's subtitle and body
we have been setting the `ellipsize-mode` property to Pango.EllipsizeMode.NONE
that is not present in the underlying GObject.

Not being an error in javascript, gjs didn't warn us about this, while at the
same time the St.Label's default Pango.EllipsizeMode.END was used.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/922

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531

7 years agost: Reimplement StClipboard on top of MetaSelection
Carlos Garnacho [Mon, 26 Nov 2018 11:54:23 +0000 (12:54 +0100)]
st: Reimplement StClipboard on top of MetaSelection

And stop using X11/gdk for this.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/331

7 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Wed, 1 May 2019 19:54:12 +0000 (19:54 +0000)]
Update Esperanto translation

7 years agodashSpacer: Don't trigger allocations from size negotiations
Florian Müllner [Tue, 30 Apr 2019 11:31:51 +0000 (13:31 +0200)]
dashSpacer: Don't trigger allocations from size negotiations

If an actor's allocation is outdated, clutter_actor_get_allocation_box()
will queue a relayout. That's why it's advised to not use the function
unless the allocation is known to be valid (namely during paint), but
in particular not from within get_preferred_width/height vfuncs.

Using the :allocation property (which may be outdated) would be better,
but in this case we can simply delegate the request to the correct actor.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1065

7 years agokeyboard: Destroy old layout actors when regenerating keyboard groups
Carlos Garnacho [Tue, 30 Apr 2019 12:08:25 +0000 (14:08 +0200)]
keyboard: Destroy old layout actors when regenerating keyboard groups

We were cleaning up self._groups, but the actors for all previous
groups/layers/modes would remain attached to the aspect container,
simply hidden.

Under some circumstances this can really make the amount of actors
in the shell stage to quickly ramp up, it's not just a "leak" but
also has potential side effects on performance.

We should destroy all child actors of this._aspectContainer, except
the static ones (emoji and keypad).

While at it, fix this._groups re-initialization, as it's actually an
object, not an array.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/523
Closes?: https://gitlab.gnome.org/GNOME/mutter/issues/556

7 years agoworldClocks: Ignore locations with unknown timezone
Florian Müllner [Sun, 28 Apr 2019 10:33:41 +0000 (12:33 +0200)]
worldClocks: Ignore locations with unknown timezone

We currently assume that every location has an associated timezone.
While this is sound in the real world, in practise it depends on
whether or not libgweather can find a corresponding timezone DB
entry.

This used to be a fringe case, but has become more likely when commit
https://gitlab.gnome.org/GNOME/libgweather/commit/d7682676ac9 moved
weather stations from cities to countries - the station itself is un-
likely to have a timezone entry, and the country may be part of more
than a single timezone.

It would be good for libgweather to return a timezone for those
locations again, but we should defend against the case anyway.
We cannot tell what time it is at a particular location without
knowing the timezone, so simply filter them out.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1062

7 years agost: Reload icon on style changes only if necessary
Carlos Garnacho [Tue, 30 Apr 2019 12:51:47 +0000 (14:51 +0200)]
st: Reload icon on style changes only if necessary

The parameters that may affect the icon on ::style-changed are more size
related than visual (we listen to icon theme changes for the latter). It
makes sense to just update the icon if the size came out different.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/524

7 years agost: Use g_signal_handler_disconnect() to disconnect from StTheme
Carlos Garnacho [Tue, 30 Apr 2019 12:42:59 +0000 (14:42 +0200)]
st: Use g_signal_handler_disconnect() to disconnect from StTheme

With a high enough amount of actors, there may be enough theme nodes and
signal connections on StTheme::custom-stylesheets-changed that
g_signal_handlers_disconnect_by*() on dispose becomes expensive, this may
become a surprisingly hot spot in StWidget::style-changed.

Keep the handler ID around and use g_signal_handler_disconnect() to avoid
linear lookups for the matching func/data.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/524

7 years agopanel: Don't chain up to parent's allocate
Florian Müllner [Mon, 29 Apr 2019 17:53:57 +0000 (17:53 +0000)]
panel: Don't chain up to parent's allocate

The top bar handles allocating all its children itself, so there's
little value in chaining up to st_widget_allocate() and get the
default layout manager allocating all children again (and possibly
differently).

If this happens, we end up with an infinite allocation cycle with
corresponding performance penalty. Fix this by just doing and what
Shell.GenericContainer did before commit 286ffbe2b6 replaced it,
and not chain up to StWidget.

Thanks to Robert Mader for debugging the issue.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1054

7 years agopadOsd: Use non-deprecated librsvg API to create handle
Carlos Garnacho [Fri, 26 Apr 2019 11:03:42 +0000 (13:03 +0200)]
padOsd: Use non-deprecated librsvg API to create handle

On one hand, we were using a path instead of an URI on
rsvg_handle_set_base_uri(). This broke at some point in librsvg
(presumably for the best, handling paths there sounds non-standard)
leaving a blank svg (As the base image wouldn't be accessed).

On the other hand, we use this with the deprecated rsvg_handle_write()
which we should drift away from.

Using rsvg_handle_new_from_stream_sync() neatly solves both. We use
newer API based on input streams and GFiles, and it internally does
the right thing, bringing the pad OSD back to life.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1220
7 years agojs: Check for this.constructor type instead of new.target
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:55:34 +0000 (15:55 -0500)]
js: Check for this.constructor type instead of new.target

Use more ES6-inspired check for classes initializations.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agoCyclerPopup: Check for type using constructor
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:50:21 +0000 (15:50 -0500)]
CyclerPopup: Check for type using constructor

Classes that are sub-classes of GObject don't use a constructor per se, so we
can't check for new.target (as this is undefined) in _init.

Then compare the current constructor name instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agoSwitcherPopup: Check for type using constructor
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:50:49 +0000 (15:50 -0500)]
SwitcherPopup: Check for type using constructor

Classes that are sub-classes of GObject don't use a constructor per se, so we
can't check for new.target (as this is undefined) in _init.

Then compare the current constructor name instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agokeyboard: Disable emoji support on X11
Florian Müllner [Fri, 26 Apr 2019 08:23:28 +0000 (10:23 +0200)]
keyboard: Disable emoji support on X11

Unlike regular keys that generate key events from a virtual device,
emoji keys rely on the input method to insert the character. However
as the compositor cannot inject IM events into ibus, this only works
in the shell's own entries on X11.

We shouldn't expose mostly broken functionality to the user, so limit
the feature to the wayland session.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1172

7 years agoci: Improve script output
Florian Müllner [Fri, 26 Apr 2019 18:34:45 +0000 (20:34 +0200)]
ci: Improve script output

git-fetch's -q flag doesn't suppress warnings, so it's not a full
replacement of the redirection that was removed in commit 8cefd919.
Shut up the cryptic warning and replace it with a clearer log message
instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/511

7 years agoci: Try harder to find a matching mutter branch
Florian Müllner [Thu, 25 Apr 2019 21:11:11 +0000 (23:11 +0200)]
ci: Try harder to find a matching mutter branch

Depending on how gitlab's CI checks out gnome-shell, the shell branch
may not have a local reference like "gnome-3-32", but only a remote
one like "remotes/origin/gnome-3-32".

Consider that case as well when looking for a corresponding mutter branch.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/511

7 years agoci: Handle merge requests for non-master branches
Florian Müllner [Tue, 23 Apr 2019 17:04:21 +0000 (19:04 +0200)]
ci: Handle merge requests for non-master branches

If we don't find a branch that matches the branch used in the merge
request, we currently fall back to the non-merge-request matching,
i.e. first try the current shell branch, then fall back to master.

This should work for commits to upstream branches, but not for merge
requests to a stable branch. For those, the target branch name is
a better fallback.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509

7 years agoci: Fix checking out mutter for stable branches
Florian Müllner [Tue, 23 Apr 2019 16:36:35 +0000 (16:36 +0000)]
ci: Fix checking out mutter for stable branches

Remote branches always start with the remote itself, so just looking
for "gnome-3-32" etc. won't produce a match.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509

7 years agoci: Silence some warnings
Florian Müllner [Tue, 23 Apr 2019 16:36:19 +0000 (16:36 +0000)]
ci: Silence some warnings

... as suggested by Jonas in mutter!548.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509